package com.xzmzhp.service.cos.impl;

import cn.hutool.core.collection.CollUtil;
import com.xzmzhp.dao.cos.OrnamentsMapper;
import com.xzmzhp.pojo.cos.Ornaments;
import com.xzmzhp.service.cos.OrnamentsService;
import com.xzmzhp.utils.StringUtils;
import com.xzmzhp.vo.cos.OrnamentsVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
 * @author: 王源(xm)
 * @create: 2022-04-24 11:49
 * @program: ams
 * @description: cos服配件逻辑实现类
 */
@Service
public class OrnamentsServiceImpl implements OrnamentsService {

    @Autowired
    private OrnamentsMapper ornamentsMapper;

    /**
     * 根据Ornaments服id查询Ornaments服信息
     * @param ornamentsId Ornaments服id
     * @return Ornaments服信息
     */
    @Override
    public Ornaments findOrnamentsById(Integer ornamentsId) {
        if (StringUtils.isNull(ornamentsId)){
            return ornamentsMapper.selectById(ornamentsId);
        }
        return null;
    }

    /**
     * 根据条件查询cos服配件相关信息sql
     * @param param 相关参数
     *        cosId cos服id
     *        ornamentsName cos配件名称
     *        ornamentsTypeName cos配件类型名称
     *        ornamentsStatus cos配件状态
     * @return cos配件相关信息sql
     */
    @Override
    public List<Ornaments> findAll(Map<String, Object> param) {
        if (CollUtil.isNotEmpty(param)){
            return ornamentsMapper.findAll(param);
        }
        return Collections.emptyList();
    }

    /**
     * 根据条件查询cos服配件相关信息
     * @param param 相关参数
     *        cosName cos服名称
     *        ornamentsName cos配件名称
     *        ornamentsTypeName cos配件类型名称
     *        ornamentsStatus cos配件状态
     * @return cos配件相关信息
     */
    @Override
    public List<OrnamentsVo> findOrnamentsByParam(Map<String, Object> param) {
        if (CollUtil.isNotEmpty(param)){
            return ornamentsMapper.ornamentsByParam(param);
        }
        return Collections.emptyList();
    }

    /**
     * 添加cos服配件信息
     * @param ornaments cos服配件信息实体类
     * @return 是否成功
     */
    @Override
    public Integer addOrnaments(Ornaments ornaments) {
        if (StringUtils.isNotNull(ornaments)){
            return ornamentsMapper.insert(ornaments);
        }
        return null;
    }

    /**
     * 修改cos服配件信息
     * @param ornaments cos服配件信息
     * @return 是否成功
     */
    @Override
    public Integer exitOrnaments(Ornaments ornaments) {
        if (StringUtils.isNotNull(ornaments)){
            return ornamentsMapper.updateById(ornaments);
        }
        return null;
    }

    /**
     * 根据ornamentsId修改cos服配件状态
     * @param ornamentsId cos服配件id
     * @param status cos服配件状态
     * @return 是否成功
     */
    @Override
    public Integer exitStatus(Integer ornamentsId, String status) {
        if (StringUtils.isNotNull(ornamentsId) && StringUtils.isNotEmpty(status)){
            return ornamentsMapper.exitStatus(ornamentsId,status);
        }
        return null;
    }
}
